<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // let  p = new Promise(function (resolve,reject) {
        //     //这里处理异步逻辑
        //     //异步操作成功时调用
        //     resolve('成功的数据')
        //     //异步操作失败时调用
        //     reject('报错信息')
        // })
        // .then()
        // .then()
        // .then()

        // new Promise(
        //     function (resolve,reject) {
        //         setTimeout(() => {
        //             console.log(1);
        //             resolve()
        //         }, 3000);
        //     }
        // ).then(
        //     function () {
        //         return new Promise(
        //             function (resolve,reject) {
        //         setTimeout(() => {
        //             console.log(2);
        //             resolve()
        //         }, 1000);
        //     } 
        //         )
        //     }
        // ).then(
        //     function () {
        //         return new Promise(
        //             function (resolve,reject) {
        //         setTimeout(() => {
        //             console.log(3);
        //             resolve()
        //         }, 1000);
        //     } 
        //         )
        //     }
        // )

        //promise函数

        function myPr(delay, message) {
            return new Promise(
                (resolve, reject) => {
                    setTimeout(() => {
                        console.log(message);
                        resolve() //记得返回执行的结果
                    }, delay);
                }
            )
        }

        myPr(3000, '第一')
            .then(
                () => {
                    return myPr(2000, '第二')
                }
            )
            .then(
                () => {
                    return myPr(1000, '第三')
                }
            )

        // let myP = new Promise(
        //     (resolve, reject) => {
        //         setTimeout(() => {
        //             let flag = Math.ceil(Math.random() * 10);
        //             console.log(flag);
        //             if (flag <= 5) {
        //                 resolve('成功了')
        //             } else {
        //                 reject('失败了')
        //             }
        //         }, 200);
        //     }
        // )
        // console.log(myP);
        // myP.then((params) => {
        //     console.log(params);
        // })
        // .catch(
        //     (err) => {
        //         console.log(err);
            
        //      }
        // )
        // // .finally()不管成功与否都会执行
        // .finally(
        //     () => {
        //         console.log('到此结束')
        //     }
        // )

        // async,await

async function asyncFunc(params) {
    await myPr(1000,'第一次');
    await myPr(2000,'第二次');
    await myPr(3000,'第三次');

}
asyncFunc()
    </script>
</body>

</html>